package com.bestcem.xm.award.grpc.service.param.draw;

import com.bestcem.xm.common.core.constant.RegTypes;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;

/**
 * 导出中奖名单请求参数
 *
 * @author hang.li <hang.li@idiaoyan.com>
 * @version v1.0
 * @date 2021/7/14 10:14
 */
@Data
@Accessors(chain = true)
public class ExportWinnersParam {

    /**
     * 奖励id
     */
    @NotBlank(message = "奖励id不能为空")
    @Pattern(regexp = RegTypes.OBJECT_ID, message = "奖励id格式错误")
    @JsonProperty("id")
    private String awardId;

    /**
     * 公司id
     */
    @NotBlank(message = "公司id不能为空")
    @Pattern(regexp = RegTypes.OBJECT_ID, message = "公司id格式错误")
    @JsonProperty("org_id")
    private String orgId;

    /**
     * 投放id
     */
    @Pattern(regexp = "(^\\s*)|([a-fA-F0-9]{24})", message = "投放id格式错误")
    @JsonProperty("deliver_id")
    private String deliverId;

    /**
     * 奖项等级
     */
    private Integer level;

    /**
     * 奖项名称
     */
    private String name;

    /**
     * 投放来源 {@link DeliverSourceEnum}
     */
    @JsonProperty("deliver_source")
    private Integer deliverSource;

    /**
     * 中奖状态
     */
    @Min(value = 0, message = "中奖状态错误")
    @Max(value = 3, message = "中奖状态错误")
    private Integer status;

    /**
     * 抽奖手机号
     */
    private String phone;
}